package com.qf2.interceptors;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CacheInterceptor implements HandlerInterceptor {

    //在try中，在处理器方法前面执行的
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        System.out.println("preHandle....Cache");

        /*
            返回值为true，表示放行到处理器方法中
            返回值为false，表示不放行ge":25,"name":"李四","bir":"2023-04-27"}，处理器方法是不会执行的
         */
        return false;
    }

    //当处理器方法执行正常，不出现异常的时候，才会执行 在try中，在处理器方法后面执行的
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle.....Cache");
    }

    //不管处理器是否正常执行，都会执行到 在finally中的，只要preHandle返回true了，就会执行
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion......Cache");
    }
}
